home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / c / eddilib / eddilib.c < prev    next >
C/C++ Source or Header  |  1994-11-04  |  2KB  |  82 lines

  1. /*                   */
  2. /* 'EdDI' binding    */
  3. /*                   */
  4.  
  5. /* 
  6.     Patched for Lattice C 5.52 [2/10/94] by Craig Graham.
  7. */
  8.  
  9. #include <vdi.h>
  10. #include <portab.h>
  11. #include <osbind.h>
  12. #include "eddilib.h"
  13.  
  14. /* Funktionsprototypen */
  15. void  v_opnbm( short *work_in, MFDB *bitmap, short *handle, short *work_out );
  16. void  v_clsbm( short handle );
  17.  
  18. extern short _VDIcontrl[12],
  19.       _VDIintin[128],
  20.       _VDIintout[128],
  21.       _VDIptsin[128],
  22.       _VDIptsout[128];
  23.  
  24. /* OPEN BITMAP (VDI 100, 1) */
  25. void  v_opnbm( short *work_in, MFDB *bitmap, short *handle, short *work_out )
  26. {
  27.     _VDIpb[1] = work_in;
  28.     _VDIpb[3] = work_out;
  29.     _VDIpb[4] = work_out + 45;
  30.  
  31.     _VDIcontrl[0] = 100;
  32.     _VDIcontrl[1] = 0;
  33.     _VDIcontrl[3] = 20;
  34.     _VDIcontrl[5] = 1;
  35.     *((ULONG *)(&_VDIcontrl[7])) = (ULONG) bitmap;
  36.  
  37.    cg_vdi((ULONG)_VDIpb);
  38.  
  39.    *handle = _VDIcontrl[6];
  40.    _VDIpb[1] = _VDIintin;
  41.    _VDIpb[3] = _VDIintout;
  42.    _VDIpb[4] = _VDIptsout;
  43. }
  44.  
  45. /* CLOSE BITMAP (VDI 101, 1)  */
  46. void  v_clsbm( short handle )
  47. {
  48.    _VDIcontrl[0] = 101;
  49.    _VDIcontrl[1] = 0;
  50.    _VDIcontrl[3] = 0;
  51.    _VDIcontrl[5] = 1;
  52.    _VDIcontrl[6] = handle;
  53.    cg_vdi((ULONG)_VDIpb);
  54. }
  55.  
  56. /* Open an Off-Screen-Bitmap (simple interface to v_opnbm()) */
  57. short open_bitmap( short x, short y, MFDB *bitmap, short *work_out )
  58. {
  59.     short    count,
  60.             dummy,
  61.             work_in[20];
  62.     short handle;
  63.  
  64.     handle = graf_handle( &dummy, &dummy, &dummy, &dummy );
  65.  
  66.     for ( count = 1; count < 10; count++ )
  67.         work_in[count] = 1;
  68.  
  69.     work_in[0] = Getrez()+2;
  70.     work_in[10] = 2;                                /* Rasterkoordinaten */
  71.     work_in[11] = x;                                /* Breite - 1 */
  72.     work_in[12] = y;                                /* H”he - 1 */
  73.     work_in[13] = work_in[14] = 0;            /* Pixelbreite und -H”he des Bildschirms bernehmen */
  74.     
  75.     for ( count = 15; count < 20; count++ )
  76.         work_in[count] = 0;                        /* reserviert */
  77.     
  78.     v_opnbm( work_in, bitmap, &handle, work_out );
  79.  
  80.     return( handle );
  81. }
  82.